import React from 'react';

export interface ICapability {
  /** 标识 */
  id: string;

  /** 显示名称 */
  title: React.ReactNode;

  /** 图标 */
  icon?: string;

  /** 是否隐藏 */
  hide?: boolean;

  /** 是否失效 */
  disabled?: boolean;

  /** 结构 */
  element?: React.ReactNode;

  /** 是否加载中 */
  loading?: boolean;

  /** 启动这个功能 */
  onStart: () => void;
}

export type ICapabilityHook<T = any, O = unknown> = (record: T, index?: number) => ICapability & O